In order to reduce costs of operating and managing computers, a virtualization technology for aggregating a plurality of computers into one physical computer is making further progress as the number of cores of a multi-core processor increases.
Virtualized software is control software that divides computer resources such as a CPU (processor) and an I/O device of one physical computer and allocates the divided computer resources to a plurality of virtual machines that are virtual computers. One OS (guest OS) can run on each of the virtual machines. Studies of using the virtualization technology also for a control apparatus for storage devices are being conducted in order to provide high functionalities and improve availability.
With regard to the processor that executes the virtualized software, one that has a virtualization assist feature such as a Virtualization Technology for Xeon (VT-x) feature with INTEL Architecture (iA)-32 or the like is in the mainstream. The VT-x is a feature that assigns different operation privileges to the virtualized software and the guest OS, and is implemented as hardware of the processor.
With regard to the I/O device, there are known occupied allocation in which the virtual machine occupies a physical I/O device, shared allocation in which a plurality of virtual machines share the physical I/O device, and the like. Single Root I/O Virtualization (SR-IOV) defined by PCI eXpress or the like is known as a technology that enables the shared allocation.
In order to share one I/O device among the plurality of virtual machines, an interrupt signal transmitted from the I/O device needs to be distributed to the respective virtual machines. As a technology for distributing the interrupt signal transmitted from one I/O device to a plurality of processors, for example, Japanese Patent Application Laid-open No. 2010-157232 A (PTL 1) is known. Japanese Patent Application Laid-open No. 2010-157232 A discloses a technology for transmitting an interrupt signal received from a physical device controller to a predetermined, virtual machine by redirecting the interrupt signal to a plurality of virtual device controllers.
It should be noted that a message signaled interrupt (MSI) defined by PCI and PCI eXpress or the like is used as a hardware I/O interrupt transmitted from an I/O device.